import MesHelp from '../Http/MesHelp'

// ==================== 权限管理API接口 ====================

/**
 * 获取权限列表接口 - 支持分页和搜索
 * @param data 查询参数（权限名称、权限类型、上级权限ID、状态、分页信息）
 * @returns Promise<any>
 */
export const getPermissionList = (data: any) => {
  return MesHelp.post('/api/User/GetPermissionList', data)
}

/**
 * 获取权限详情接口 - 根据权限ID获取完整权限信息
 * @param id 权限ID
 * @returns Promise<any>
 */
export const getPermissionById = (id: number) => {
  return MesHelp.get(`/api/User/GetPermissionById?id=${id}`)
}

/**
 * 创建权限接口 - 新增权限
 * @param data 权限信息
 * @returns Promise<any>
 */
export const createPermission = (data: any) => {
  return MesHelp.post('/api/User/CreatePermission', data)
}

/**
 * 更新权限接口 - 编辑权限信息
 * @param data 权限信息
 * @returns Promise<any>
 */
export const updatePermission = (data: any) => {
  return MesHelp.post('/api/User/UpdatePermission', data)
}

/**
 * 删除权限接口 - 软删除权限
 * @param id 权限ID
 * @returns Promise<any>
 */
export const deletePermission = (id: number) => {
  return MesHelp.post('/api/User/DeletePermission', { id })
}

/**
 * 切换权限状态接口 - 启用/禁用权限
 * @param id 权限ID
 * @param status 状态（1：启用，0：禁用）
 * @returns Promise<any>
 */
export const togglePermissionStatus = (id: number, status: number) => {
  return MesHelp.post('/api/User/TogglePermissionStatus', { id, status })
}

/**
 * 获取权限树形结构接口 - 获取权限层级结构
 * @returns Promise<any>
 */
export const getPermissionTree = () => {
  return MesHelp.get('/api/User/GetPermissionTree')
}

/**
 * 获取所有权限接口 - 用于下拉选择
 * @returns Promise<any>
 */
export const getAllPermissions = () => {
  return MesHelp.get('/api/User/GetAllPermissions')
}

/**
 * 获取用户权限路由接口 - 根据用户权限获取可访问的路由
 * @returns Promise<any>
 */
export const getUserPermissionRoutes = () => {
  return MesHelp.get('/api/User/GetUserPermissionRoutes')
}

/**
 * 获取用户菜单权限接口 - 获取用户可访问的菜单项
 * @returns Promise<any>
 */
export const getUserMenuPermissions = () => {
  return MesHelp.get('/api/User/GetUserMenuPermissions')
}

/**
 * 根据用户ID获取用户权限列表
 * @param userId 用户ID
 * @returns Promise<any>
 */
export const getUserPermissionsByUserId = (userId: number) => {
  return MesHelp.get(`/api/User/GetUserPermissionsByUserId?userId=${userId}`)
}

/**
 * 根据角色ID获取角色权限列表
 * @param roleId 角色ID
 * @returns Promise<any>
 */
export const getRolePermissionsByRoleId = (roleId: number) => {
  return MesHelp.get(`/api/User/GetRolePermissionsByRoleId?roleId=${roleId}`)
}